package com.tutorial.demo4stream;

import java.util.ArrayList;
import java.util.List;

/**
 * @author xiaoxiaokui
 * @description: Filter 过滤
 * @date 2019/10/29
 **/
public class Demo4Filter {
    public static void main(String[] args) {
        List<String> stringCollection = new ArrayList<>();
        stringCollection.add("ddd2");
        stringCollection.add("aaa2");
        stringCollection.add("bbb1");
        stringCollection.add("aaa1");
        stringCollection.add("bbb3");
        stringCollection.add("ccc");
        stringCollection.add("bbb2");
        stringCollection.add("ddd1");

        // Filter 的入参是一个 Predicate,
        // 上面已经说到，Predicate 是一个断言的中间操作，
        // 它能够帮我们筛选出我们需要的集合元素。
        // 它的返参同样 是一个 Stream 流，
        // 我们可以通过 foreach 终端操作，来打印被筛选的元素
        stringCollection
                .stream()
                .filter((s) -> s.startsWith("a"))
                .forEach(System.out::println);
        // 注意：foreach 是一个终端操作，它的返参是 void,
        // 我们无法对其再次进行流操作。
    }
}
